<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">

	<title>OBBox Class Reference</title>

	<link rel="stylesheet" href="../css/style.css">
	<meta name="viewport" content="initial-scale=1, maximum-scale=1.4">
	<meta name="generator" content="appledoc 2.2.1 (build 1334)">
</head>
<body class="appledoc">
	<header>
		<div class="container" class="hide-in-xcode">
			
			<h1 id="library-title">
				<a href="../index.html">OBMessenger </a>
			</h1>

			<p id="developer-home">
				<a href="../index.html">On-Bright</a>
			</p>
			
		</div>
	</header>

	<aside>
		<div class="container">
			<nav>
				<ul id="header-buttons" role="toolbar">
					<li><a href="../index.html">Index</a></li>
<li><a href="../hierarchy.html">Hierarchy</a></li>

					<li id="on-this-page" role="navigation">
						<label>
							On This Page

							<div class="chevron">
								<div class="chevy chevron-left"></div>
								<div class="chevy chevron-right"></div>
							</div>

							<select id="jump-to">
	<option value="top">Jump To&#133;</option>
	
	<option value="overview">Overview</option>
	

	
	
	<option value="tasks">Tasks</option>
	
	

	
	
	<optgroup label="Properties">
		
		<option value="//api/name/delegate">delegate</option>
		
		<option value="//api/name/isAccessable">isAccessable</option>
		
		<option value="//api/name/isActivate">isActivate</option>
		
		<option value="//api/name/isConnectServer">isConnectServer</option>
		
		<option value="//api/name/isLockAppSet">isLockAppSet</option>
		
		<option value="//api/name/name">name</option>
		
		<option value="//api/name/netIp">netIp</option>
		
		<option value="//api/name/oboxAuthorCode">oboxAuthorCode</option>
		
		<option value="//api/name/oboxType">oboxType</option>
		
		<option value="//api/name/oboxVersion">oboxVersion</option>
		
		<option value="//api/name/serial">serial</option>
		
	</optgroup>
	

	
	<optgroup label="Class Methods">
		
		<option value="//api/name/boxWithIp:andDelegate:">+ boxWithIp:andDelegate:</option>
		
		<option value="//api/name/dataFromHexString:">+ dataFromHexString:</option>
		
		<option value="//api/name/secureOBSForByte:andLength:withPw:">+ secureOBSForByte:andLength:withPw:</option>
		
	</optgroup>
	

	
	<optgroup label="Instance Methods">
		
		<option value="//api/name/actionSceneNow:">- actionSceneNow:</option>
		
		<option value="//api/name/connectToDevice:">- connectToDevice:</option>
		
		<option value="//api/name/connectToRouter:inSSID:withPw:">- connectToRouter:inSSID:withPw:</option>
		
		<option value="//api/name/deviceDisconnect">- deviceDisconnect</option>
		
		<option value="//api/name/getNode:withType:">- getNode:withType:</option>
		
		<option value="//api/name/getNodeState:ifGroup:">- getNodeState:ifGroup:</option>
		
		<option value="//api/name/getNodeVersion:">- getNodeVersion:</option>
		
		<option value="//api/name/getNodesByType:">- getNodesByType:</option>
		
		<option value="//api/name/getOboxName">- getOboxName</option>
		
		<option value="//api/name/getOboxSerial">- getOboxSerial</option>
		
		<option value="//api/name/getOboxTime">- getOboxTime</option>
		
		<option value="//api/name/getScene:withSceneAddr:">- getScene:withSceneAddr:</option>
		
		<option value="//api/name/getSceneAtIndex:forInfotype:withSceneAddr:">- getSceneAtIndex:forInfotype:withSceneAddr:</option>
		
		<option value="//api/name/initWithDeviceIP:andDelegate:">- initWithDeviceIP:andDelegate:</option>
		
		<option value="//api/name/releaseAllNodes">- releaseAllNodes</option>
		
		<option value="//api/name/releaseNode:">- releaseNode:</option>
		
		<option value="//api/name/resetWithKind:">- resetWithKind:</option>
		
		<option value="//api/name/searchNewNode:">- searchNewNode:</option>
		
		<option value="//api/name/searchNewNode:fromIndex:withTimeout:">- searchNewNode:fromIndex:withTimeout:</option>
		
		<option value="//api/name/sendDataWithCmdHexString:andPlayloadHexString:withTimeout:">- sendDataWithCmdHexString:andPlayloadHexString:withTimeout:</option>
		
		<option value="//api/name/setControlPW:withOldPW:">- setControlPW:withOldPW:</option>
		
		<option value="//api/name/setCtlPw:">- setCtlPw:</option>
		
		<option value="//api/name/setGroup:forName:">- setGroup:forName:</option>
		
		<option value="//api/name/setGroupChild:forNode:">- setGroupChild:forNode:</option>
		
		<option value="//api/name/setNode:forNewName:">- setNode:forNewName:</option>
		
		<option value="//api/name/setNodeState:withHexState:ifGroup:">- setNodeState:withHexState:ifGroup:</option>
		
		<option value="//api/name/setOBOXAPPW:">- setOBOXAPPW:</option>
		
		<option value="//api/name/setOBOXName:">- setOBOXName:</option>
		
		<option value="//api/name/setOBOXtoServer:">- setOBOXtoServer:</option>
		
		<option value="//api/name/setOBOXtoServer:withConnectRouter:andPw:ifAuthorized:">- setOBOXtoServer:withConnectRouter:andPw:ifAuthorized:</option>
		
		<option value="//api/name/setOboxTime:withZone:">- setOboxTime:withZone:</option>
		
		<option value="//api/name/setScene:forName:ifUnitTag:forStatus:">- setScene:forName:ifUnitTag:forStatus:</option>
		
		<option value="//api/name/setSceneAction:forNodeAddr:ifGroup:withHexStatus:">- setSceneAction:forNodeAddr:ifGroup:withHexStatus:</option>
		
		<option value="//api/name/setSceneAction:withInfoArray:">- setSceneAction:withInfoArray:</option>
		
		<option value="//api/name/setSceneCondition:withInfoArray:">- setSceneCondition:withInfoArray:</option>
		
		<option value="//api/name/syncOboxTime">- syncOboxTime</option>
		
	</optgroup>
	
	
</select>
						</label>
					</li>
				</ul>
			</nav>
		</div>
	</aside>

	<article>
		<div id="overview_contents" class="container">
			<div id="content">
				<main role="main">
					<h1 class="title">OBBox Class Reference</h1>

					
					<div class="section section-specification"><table cellspacing="0"><tbody>
						<tr>
	<th>Inherits from</th>
	<td>NSObject</td>
</tr><tr>
	<th>Declared in</th>
	<td>OBBox.h</td>
</tr>
						</tbody></table></div>
					

                    
					
					<div class="section section-overview">
						<a title="Overview" name="overview"></a>
						<h2 class="subtitle subtitle-overview">Overview</h2>
						<p>OBBox local control interface with whole OBox functions and response <a href="#//api/name/delegate">delegate</a></p>

<p>Features:</p>

<ul>
<li>Communicate with local obox directly using socket</li>
<li>Include all OBox function API and callback with parsed data</li>
<li>Role as virtual OBox, Embered in OBoxEntity</li>
</ul>


<p>Thanks for CocoaAsyncSocket</p>
					</div>
					
					

					
					
					<div class="section section-tasks">
						<a title="Tasks" name="tasks"></a>
						

						<a title="Property" name="task_Property"></a>
						<h2 class="task-title">Property</h2>

						<div class="task-list">
							<div class="section-method">
	<a name="//api/name/delegate" title="delegate"></a>
	<h3 class="method-title"><code><a href="#//api/name/delegate">&nbsp;&nbsp;delegate</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Callback delegate conforms to <a href="../Protocols/OBBoxDelegate.html">OBBoxDelegate</a> protocol</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (nonatomic, weak) _Nullable id&lt;OBBoxDelegate&gt; delegate</code></div>

		    
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>Default: Auto set to manager when init, same applied to the delegate forwarder
Advanced: For use this module only, init with target ip and set delegate to get response</p>
			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/isAccessable" title="isAccessable"></a>
	<h3 class="method-title"><code><a href="#//api/name/isAccessable">&nbsp;&nbsp;isAccessable</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>State flag: Whether obox is accessible or not, flag for requiring obox password</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (nonatomic, assign, readonly) BOOL isAccessable</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/oboxType" title="oboxType"></a>
	<h3 class="method-title"><code><a href="#//api/name/oboxType">&nbsp;&nbsp;oboxType</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>current obox type, see <a href="../Constants/OBOXTYPE.html">OBOXTYPE</a> enum</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (readonly, nonatomic, assign) OBOXTYPE oboxType</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/name" title="name"></a>
	<h3 class="method-title"><code><a href="#//api/name/name">&nbsp;&nbsp;name</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>obox name</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (readonly, nonatomic, strong) NSString *name</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/netIp" title="netIp"></a>
	<h3 class="method-title"><code><a href="#//api/name/netIp">&nbsp;&nbsp;netIp</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>obox Lan IP (0.0.0.0 socket not connected)</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (readonly, nonatomic, strong) NSString *netIp</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/serial" title="serial"></a>
	<h3 class="method-title"><code><a href="#//api/name/serial">&nbsp;&nbsp;serial</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>obox unique serial string</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (readonly, nonatomic, strong) NSString *serial</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/oboxVersion" title="oboxVersion"></a>
	<h3 class="method-title"><code><a href="#//api/name/oboxVersion">&nbsp;&nbsp;oboxVersion</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>obox firmware version</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (readonly, nonatomic, strong) NSString *oboxVersion</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/oboxAuthorCode" title="oboxAuthorCode"></a>
	<h3 class="method-title"><code><a href="#//api/name/oboxAuthorCode">&nbsp;&nbsp;oboxAuthorCode</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>obox auth code for enterprise</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (readonly, nonatomic, strong) NSString *oboxAuthorCode</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/isConnectServer" title="isConnectServer"></a>
	<h3 class="method-title"><code><a href="#//api/name/isConnectServer">&nbsp;&nbsp;isConnectServer</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>State flag: Whether obox connected server or not</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (readonly, nonatomic, assign) BOOL isConnectServer</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/isActivate" title="isActivate"></a>
	<h3 class="method-title"><code><a href="#//api/name/isActivate">&nbsp;&nbsp;isActivate</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>State flag: Whether obox is activated (changed password) or not</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (readonly, nonatomic, assign) BOOL isActivate</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/isLockAppSet" title="isLockAppSet"></a>
	<h3 class="method-title"><code><a href="#//api/name/isLockAppSet">&nbsp;&nbsp;isLockAppSet</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>State flag: Whether obox is lock for app control or not</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>@property (readonly, nonatomic, assign) BOOL isLockAppSet</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div>
						</div>
						

						<a title="init" name="task_init"></a>
						<h2 class="task-title">init</h2>

						<div class="task-list">
							<div class="section-method">
	<a name="//api/name/boxWithIp:andDelegate:" title="boxWithIp:andDelegate:"></a>
	<h3 class="method-title"><code><a href="#//api/name/boxWithIp:andDelegate:">+&nbsp;boxWithIp:andDelegate:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Create OBBox object with target IP and callback <a href="#//api/name/delegate">delegate</a></p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>+ (nonnull instancetype)boxWithIp:(nonnull NSString *)<em>addr</em> andDelegate:(nullable id)<em>delegate</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>addr</code></th>
						<td><p>Lan IP of target OBox</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>delegate</code></th>
						<td><p>callback deleagte</p></td>
					</tr>
				
				</table>
			</div>
			

			
			<div class="method-subsection return">
				<h4 class="method-subtitle parameter-title">Return Value</h4>
				<p>OBBox object</p>
			</div>
			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<div class="warning"><p><strong>Warning:</strong> Create with wrong IP will cause socket disconnect, <a href="#//api/name/netIp">netIp</a> in object will be 0.0.0.0</p></div><div class="warning"><p><strong>Warning:</strong> Delegate callback is the only interface to get obox response data, must set <a href="#//api/name/delegate">delegate</a> to <a href="../Classes/OBManager.html">OBManager</a> as default or any else you want</p></div>
			</div>
			

			

			
			<div class="method-subsection see-also-section">
				<h4 class="method-subtitle">See Also</h4>
				<ul>
					
					<li><code><p><a href="#//api/name/initWithDeviceIP:andDelegate:">- initWithDeviceIP:andDelegate:</a></p></code></li>
					
				</ul>
			</div>
			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/initWithDeviceIP:andDelegate:" title="initWithDeviceIP:andDelegate:"></a>
	<h3 class="method-title"><code><a href="#//api/name/initWithDeviceIP:andDelegate:">&ndash;&nbsp;initWithDeviceIP:andDelegate:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Init OBBox object with target IP and callback <a href="#//api/name/delegate">delegate</a></p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (nonnull instancetype)initWithDeviceIP:(nonnull NSString *)<em>addr</em> andDelegate:(nullable id)<em>delegate</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>addr</code></th>
						<td><p>Lan IP of target OBox</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>delegate</code></th>
						<td><p>callback deleagte</p></td>
					</tr>
				
				</table>
			</div>
			

			
			<div class="method-subsection return">
				<h4 class="method-subtitle parameter-title">Return Value</h4>
				<p>OBBox object</p>
			</div>
			

			

			

			

			
			<div class="method-subsection see-also-section">
				<h4 class="method-subtitle">See Also</h4>
				<ul>
					
					<li><code><p><a href="#//api/name/connectToDevice:">- connectToDevice:</a></p></code></li>
					
				</ul>
			</div>
			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div>
						</div>
						

						<a title="Connection" name="task_Connection"></a>
						<h2 class="task-title">Connection</h2>

						<div class="task-list">
							<div class="section-method">
	<a name="//api/name/connectToDevice:" title="connectToDevice:"></a>
	<h3 class="method-title"><code><a href="#//api/name/connectToDevice:">&ndash;&nbsp;connectToDevice:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Connect to taget Lan IP OBox (Init or Reconnect)</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)connectToDevice:(nonnull NSString *)<em>addr</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>addr</code></th>
						<td><p>obox Lan IP</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<div class="warning"><p><strong>Warning:</strong> Wrong IP will cause socket disconnect, <a href="#//api/name/netIp">netIp</a> in object will be 0.0.0.0</p></div>
			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/setCtlPw:" title="setCtlPw:"></a>
	<h3 class="method-title"><code><a href="#//api/name/setCtlPw:">&ndash;&nbsp;setCtlPw:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Advanced: Set OBox control password to access</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)setCtlPw:(nullable NSString *)<em>pw</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>pw</code></th>
						<td><p>OBox control password (only support character or number length must be 8)</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/deviceDisconnect" title="deviceDisconnect"></a>
	<h3 class="method-title"><code><a href="#//api/name/deviceDisconnect">&ndash;&nbsp;deviceDisconnect</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Disconnect OBox (Socket disconnected)</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)deviceDisconnect</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div>
						</div>
						

						<a title="OBox Functions" name="task_OBox Functions"></a>
						<h2 class="task-title">OBox Functions</h2>

						<div class="task-list">
							<div class="section-method">
	<a name="//api/name/getOboxName" title="getOboxName"></a>
	<h3 class="method-title"><code><a href="#//api/name/getOboxName">&ndash;&nbsp;getOboxName</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Get OBox <a href="#//api/name/name">name</a></p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)getOboxName</code></div>

		    
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>Get OBox <a href="#//api/name/name">name</a> after determine OBox type and <a href="#//api/name/serial">serial</a>, included auth code for enterprise and timestamp for cache data</p>
			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/setOBOXName:" title="setOBOXName:"></a>
	<h3 class="method-title"><code><a href="#//api/name/setOBOXName:">&ndash;&nbsp;setOBOXName:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Advanced: OBox re<a href="#//api/name/name">name</a></p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)setOBOXName:(nonnull NSString *)<em>newAPSSID</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>newAPSSID</code></th>
						<td><p>new <a href="#//api/name/name">name</a> (Max 16 length of utf8 formatted string)</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/setControlPW:withOldPW:" title="setControlPW:withOldPW:"></a>
	<h3 class="method-title"><code><a href="#//api/name/setControlPW:withOldPW:">&ndash;&nbsp;setControlPW:withOldPW:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Advanced: Set or Modify OBox control password (Make activated)</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)setControlPW:(nonnull NSString *)<em>CtlPW</em> withOldPW:(nullable NSString *)<em>oldCtlPW</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>CtlPW</code></th>
						<td><p>New control password (only support character or number length must be 8)</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>oldCtlPW</code></th>
						<td><p>Old control password (nil for first set)</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<div class="warning"><p><strong>Warning:</strong> Please modify through server, or else cause obox offline</p></div>
			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/getOboxSerial" title="getOboxSerial"></a>
	<h3 class="method-title"><code><a href="#//api/name/getOboxSerial">&ndash;&nbsp;getOboxSerial</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Request obox <a href="#//api/name/serial">serial</a> and version info</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)getOboxSerial</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/resetWithKind:" title="resetWithKind:"></a>
	<h3 class="method-title"><code><a href="#//api/name/resetWithKind:">&ndash;&nbsp;resetWithKind:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Advanced: Reset specific kind of OBox info</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)resetWithKind:(RESETCMD)<em>kind</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>kind</code></th>
						<td><p><a href="../Constants/RESETCMD.html">RESETCMD</a> enum</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<div class="warning"><p><strong>Warning:</strong> May cause data removed</p></div>
			</div>
			

			

			
			<div class="method-subsection see-also-section">
				<h4 class="method-subtitle">See Also</h4>
				<ul>
					
					<li><code><p><a href="../Constants/RESETCMD.html">RESETCMD</a></p></code></li>
					
				</ul>
			</div>
			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/connectToRouter:inSSID:withPw:" title="connectToRouter:inSSID:withPw:"></a>
	<h3 class="method-title"><code><a href="#//api/name/connectToRouter:inSSID:withPw:">&ndash;&nbsp;connectToRouter:inSSID:withPw:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Change OBox as Access Point mode or Station mode that connect to router</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)connectToRouter:(BOOL)<em>enableClient</em> inSSID:(nullable NSString *)<em>ssid</em> withPw:(nullable NSString *)<em>pw</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>enableClient</code></th>
						<td><p>BoolValue whether in station mode or in AP mode</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>ssid</code></th>
						<td><p>router SSID, only for Station mode</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>pw</code></th>
						<td><p>router password, only for Station mode</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>To</p>

<ol>
<li>Switch OBox WiFi mode: Access Point mode or Station mode</li>
<li>Connect to target SSID router</li>
<li>If connect to server, better using OBActivateBoxVC in OBUIExtension</li>
</ol>

			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/setOBOXAPPW:" title="setOBOXAPPW:"></a>
	<h3 class="method-title"><code><a href="#//api/name/setOBOXAPPW:">&ndash;&nbsp;setOBOXAPPW:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Advanced (DEPRECATED) : Set OBox AP mode access password</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)setOBOXAPPW:(nonnull NSString *)<em>newPW</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>newPW</code></th>
						<td><p>access password</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>Access Point Default: (SSID: <OBOXNAME> PW: 12345678), modify password only</p>
			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/setOBOXtoServer:" title="setOBOXtoServer:"></a>
	<h3 class="method-title"><code><a href="#//api/name/setOBOXtoServer:">&ndash;&nbsp;setOBOXtoServer:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Make OBox connect to server or disconnect</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)setOBOXtoServer:(nullable NSString *)<em>serverIP</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>serverIP</code></th>
						<td><p>target server IP (Set nil to disconnect server)</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/setOBOXtoServer:withConnectRouter:andPw:ifAuthorized:" title="setOBOXtoServer:withConnectRouter:andPw:ifAuthorized:"></a>
	<h3 class="method-title"><code><a href="#//api/name/setOBOXtoServer:withConnectRouter:andPw:ifAuthorized:">&ndash;&nbsp;setOBOXtoServer:withConnectRouter:andPw:ifAuthorized:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Make OBox connect to server after connect to target router</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)setOBOXtoServer:(nonnull NSString *)<em>serverIP</em> withConnectRouter:(nonnull NSString *)<em>ssid</em> andPw:(nullable NSString *)<em>pw</em> ifAuthorized:(nullable NSString *)<em>acode</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>serverIP</code></th>
						<td><p>Target server IP</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>ssid</code></th>
						<td><p>Router ssid</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>pw</code></th>
						<td><p>Router password</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>acode</code></th>
						<td><p>Auth code for enterprise, keep nil for normal home users</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			

			

			
			<div class="method-subsection see-also-section">
				<h4 class="method-subtitle">See Also</h4>
				<ul>
					
					<li><code><p><a href="#//api/name/connectToRouter:inSSID:withPw:">- connectToRouter:inSSID:withPw:</a> and <a href="#//api/name/setOBOXtoServer:">- setOBOXtoServer:</a></p></code></li>
					
				</ul>
			</div>
			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/syncOboxTime" title="syncOboxTime"></a>
	<h3 class="method-title"><code><a href="#//api/name/syncOboxTime">&ndash;&nbsp;syncOboxTime</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Sync OBox current time</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)syncOboxTime</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/getOboxTime" title="getOboxTime"></a>
	<h3 class="method-title"><code><a href="#//api/name/getOboxTime">&ndash;&nbsp;getOboxTime</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Get OBox time</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)getOboxTime</code></div>

		    
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/setOboxTime:withZone:" title="setOboxTime:withZone:"></a>
	<h3 class="method-title"><code><a href="#//api/name/setOboxTime:withZone:">&ndash;&nbsp;setOboxTime:withZone:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Advanced: Set OBox time</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)setOboxTime:(nonnull NSDate *)<em>currentTime</em> withZone:(nonnull NSTimeZone *)<em>timeZone</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>currentTime</code></th>
						<td><p>specific time NSDate object <code>[NSDate date]</code></p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>timeZone</code></th>
						<td><p>specific time zone <code>[NSTimeZone localTimeZone]</code></p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div>
						</div>
						

						<a title="Node Functions" name="task_Node Functions"></a>
						<h2 class="task-title">Node Functions</h2>

						<div class="task-list">
							<div class="section-method">
	<a name="//api/name/searchNewNode:" title="searchNewNode:"></a>
	<h3 class="method-title"><code><a href="#//api/name/searchNewNode:">&ndash;&nbsp;searchNewNode:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Make OBox start or stop searching nodes for 30 seconds</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)searchNewNode:(BOOL)<em>enableSearch</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>enableSearch</code></th>
						<td><p>search or cancle</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>Better using EntityControl block in OBUIExtension</p>
			</div>
			

			

			
			<div class="method-subsection see-also-section">
				<h4 class="method-subtitle">See Also</h4>
				<ul>
					
					<li><code><p><a href="#//api/name/searchNewNode:fromIndex:withTimeout:">- searchNewNode:fromIndex:withTimeout:</a></p></code></li>
					
				</ul>
			</div>
			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/searchNewNode:fromIndex:withTimeout:" title="searchNewNode:fromIndex:withTimeout:"></a>
	<h3 class="method-title"><code><a href="#//api/name/searchNewNode:fromIndex:withTimeout:">&ndash;&nbsp;searchNewNode:fromIndex:withTimeout:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Advanced: Make OBox start or cancle searching nodes from index in specific timeout</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)searchNewNode:(BOOL)<em>enableSearch</em> fromIndex:(NSUInteger)<em>index</em> withTimeout:(NSUInteger)<em>timeout</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>enableSearch</code></th>
						<td><p>search or cancle</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>index</code></th>
						<td><p>new node <a href="#//api/name/name">name</a> index</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>timeout</code></th>
						<td><p>searching timeout period (second)</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>Better using EntityControl block in OBUIExtension
MUST cancle after TIMEOUT!!</p>
			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/releaseAllNodes" title="releaseAllNodes"></a>
	<h3 class="method-title"><code><a href="#//api/name/releaseAllNodes">&ndash;&nbsp;releaseAllNodes</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Release obox all nodes</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)releaseAllNodes</code></div>

		    
			

			

			

			

			

			
			<div class="method-subsection see-also-section">
				<h4 class="method-subtitle">See Also</h4>
				<ul>
					
					<li><code><p><a href="#//api/name/resetWithKind:">- resetWithKind:</a> using RELEASE to release device node, group and scene data in obox.</p></code></li>
					
				</ul>
			</div>
			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/getNodesByType:" title="getNodesByType:"></a>
	<h3 class="method-title"><code><a href="#//api/name/getNodesByType:">&ndash;&nbsp;getNodesByType:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Request all node or group info</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)getNodesByType:(NODETYPE)<em>type</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>type</code></th>
						<td><p><a href="../Constants/NODETYPE.html">NODETYPE</a>: NODE or GROUP</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/getNode:withType:" title="getNode:withType:"></a>
	<h3 class="method-title"><code><a href="#//api/name/getNode:withType:">&ndash;&nbsp;getNode:withType:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Advanced: Request target index of node or group info</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)getNode:(NSUInteger)<em>index</em> withType:(NODETYPE)<em>type</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>index</code></th>
						<td><p>Index of obox&rsquo;s node info</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>type</code></th>
						<td><p><a href="../Constants/NODETYPE.html">NODETYPE</a>: NODE or GROUP</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>Extend function of <a href="#//api/name/getNodesByType:"><code>getNodesByType:</code></a></p>
			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/setNodeState:withHexState:ifGroup:" title="setNodeState:withHexState:ifGroup:"></a>
	<h3 class="method-title"><code><a href="#//api/name/setNodeState:withHexState:ifGroup:">&ndash;&nbsp;setNodeState:withHexState:ifGroup:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Set node or group state</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)setNodeState:(nonnull NSString *)<em>nodeAddr</em> withHexState:(nonnull NSString *)<em>hexState</em> ifGroup:(BOOL)<em>isGroup</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>nodeAddr</code></th>
						<td><p>Node address in obox (<a href="../Classes/DeviceEntity.html">DeviceEntity</a> or <a href="../Classes/GroupEntity.html">GroupEntity</a> object addr param)</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>hexState</code></th>
						<td><p>State string (8 bytes hex string)</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>isGroup</code></th>
						<td><p>BoolValue flag whether target is group or single node</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>Setting target node or group state using target address and hex string state</p>
			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/getNodeState:ifGroup:" title="getNodeState:ifGroup:"></a>
	<h3 class="method-title"><code><a href="#//api/name/getNodeState:ifGroup:">&ndash;&nbsp;getNodeState:ifGroup:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Ask node or group state</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)getNodeState:(nonnull NSString *)<em>nodeAddr</em> ifGroup:(BOOL)<em>isGroup</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>nodeAddr</code></th>
						<td><p>Node address in obox (<a href="../Classes/DeviceEntity.html">DeviceEntity</a> or <a href="../Classes/GroupEntity.html">GroupEntity</a> object addr param)</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>isGroup</code></th>
						<td><p>group flag</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>Asking target node or group state using target address in obox</p>
			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/setNode:forNewName:" title="setNode:forNewName:"></a>
	<h3 class="method-title"><code><a href="#//api/name/setNode:forNewName:">&ndash;&nbsp;setNode:forNewName:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Re<a href="#//api/name/name">name</a> node or Delete node</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)setNode:(nonnull NSString *)<em>nodeAddr</em> forNewName:(nullable NSString *)<em>nodeID</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>nodeAddr</code></th>
						<td><p>Node address in obox (<a href="../Classes/DeviceEntity.html">DeviceEntity</a> object addr param)</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>nodeID</code></th>
						<td><p>Node <a href="#//api/name/name">name</a> (Max 16 length of utf8 formatted string), set nil to delete node</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>Set node <a href="#//api/name/name">name</a> ID or release by setting nil <a href="#//api/name/name">name</a></p>
			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/releaseNode:" title="releaseNode:"></a>
	<h3 class="method-title"><code><a href="#//api/name/releaseNode:">&ndash;&nbsp;releaseNode:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Release single node</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)releaseNode:(nonnull NSString *)<em>nodeAddr</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>nodeAddr</code></th>
						<td><p>Node address in obox (<a href="../Classes/DeviceEntity.html">DeviceEntity</a> object addr param)</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			

			

			
			<div class="method-subsection see-also-section">
				<h4 class="method-subtitle">See Also</h4>
				<ul>
					
					<li><code><p><a href="#//api/name/setNode:forNewName:">- setNode:forNewName:</a> using nil <a href="#//api/name/name">@property name</a> to release</p></code></li>
					
				</ul>
			</div>
			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/setGroup:forName:" title="setGroup:forName:"></a>
	<h3 class="method-title"><code><a href="#//api/name/setGroup:forName:">&ndash;&nbsp;setGroup:forName:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Create, Re<a href="#//api/name/name">name</a> or Delete group</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)setGroup:(nonnull NSString *)<em>groupAddr</em> forName:(nullable NSString *)<em>groupID</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>groupAddr</code></th>
						<td><p>Group address, set @&ldquo;00&rdquo; to create (<a href="../Classes/GroupEntity.html">GroupEntity</a> object addr param)</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>groupID</code></th>
						<td><p>Group <a href="#//api/name/name">name</a> (Max 16 length of utf8 formatted string), set nil to delete group</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<ul>
<li>Create group using @&ldquo;00&rdquo; address</li>
<li>Re<a href="#//api/name/name">name</a> group using target group address</li>
<li>Delete group by re<a href="#//api/name/name">name</a> nil ID</li>
</ul>

			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/setGroupChild:forNode:" title="setGroupChild:forNode:"></a>
	<h3 class="method-title"><code><a href="#//api/name/setGroupChild:forNode:">&ndash;&nbsp;setGroupChild:forNode:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Modify group members</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)setGroupChild:(nonnull NSString *)<em>groupAddr</em> forNode:(nonnull NSString *)<em>nodeAddr</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>groupAddr</code></th>
						<td><p>Group address, set @&ldquo;00&rdquo; mean remove member out of group (<a href="../Classes/GroupEntity.html">GroupEntity</a> object addr param)</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>nodeAddr</code></th>
						<td><p>Node address (<a href="../Classes/DeviceEntity.html">DeviceEntity</a> object addr param)</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>Insert or Remove group member with target node addr and target group addr
eg. <code>-setGroupChild:@"01" forNode:@"01" means insert (addr:01) node as a member into (addr:01) group, will remove first if already in another group</code>
eg. <code>-setGroupChild:@"00" forNode:@"01" means remove (addr:01) member node out of any group</code></p><div class="warning"><p><strong>Warning:</strong> A node can only be a member of a group</p></div>
			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/getNodeVersion:" title="getNodeVersion:"></a>
	<h3 class="method-title"><code><a href="#//api/name/getNodeVersion:">&ndash;&nbsp;getNodeVersion:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Get device version string</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)getNodeVersion:(NSString *)<em>addr</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>addr</code></th>
						<td><p>device address</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div>
						</div>
						

						<a title="Scene Functions" name="task_Scene Functions"></a>
						<h2 class="task-title">Scene Functions</h2>

						<div class="task-list">
							<div class="section-method">
	<a name="//api/name/getScene:withSceneAddr:" title="getScene:withSceneAddr:"></a>
	<h3 class="method-title"><code><a href="#//api/name/getScene:withSceneAddr:">&ndash;&nbsp;getScene:withSceneAddr:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Get scene specific type of info</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)getScene:(OBSceneType)<em>infoType</em> withSceneAddr:(uint)<em>sceneAddr</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>infoType</code></th>
						<td><p><a href="../Constants/OBSceneType.html">OBSceneType</a> for specific info</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>sceneAddr</code></th>
						<td><p>Scene address index, no means (keep 0) for OBSceneTypeInfo</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/getSceneAtIndex:forInfotype:withSceneAddr:" title="getSceneAtIndex:forInfotype:withSceneAddr:"></a>
	<h3 class="method-title"><code><a href="#//api/name/getSceneAtIndex:forInfotype:withSceneAddr:">&ndash;&nbsp;getSceneAtIndex:forInfotype:withSceneAddr:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Advanced: Request target index of target scene specific type of info</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)getSceneAtIndex:(NSUInteger)<em>sceneIndex</em> forInfotype:(OBSceneType)<em>infoType</em> withSceneAddr:(uint)<em>sceneAddr</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>sceneIndex</code></th>
						<td><p>Index of detail scene infos, (Max 3 for conditions)</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>infoType</code></th>
						<td><p><a href="../Constants/OBSceneType.html">OBSceneType</a> for specific info</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>sceneAddr</code></th>
						<td><p>Scene address index, no means (keep 0) for OBSceneTypeInfo</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>Extend function of <a href="#//api/name/getScene:withSceneAddr:"><code>getScene:withSceneAddr:</code></a> auto increase the index for all</p>
			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/setScene:forName:ifUnitTag:forStatus:" title="setScene:forName:ifUnitTag:forStatus:"></a>
	<h3 class="method-title"><code><a href="#//api/name/setScene:forName:ifUnitTag:forStatus:">&ndash;&nbsp;setScene:forName:ifUnitTag:forStatus:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Create, Change status, Re<a href="#//api/name/name">name</a> (with scene group unit tag) or Delete scene</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)setScene:(nonnull NSString *)<em>sceneAddr</em> forName:(nullable NSString *)<em>sceneID</em> ifUnitTag:(nullable NSString *)<em>hexTag</em> forStatus:(BOOL)<em>isEnable</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>sceneAddr</code></th>
						<td><p>Scene address, set @&ldquo;00&rdquo; to create (<a href="../Classes/SceneEntity.html">SceneEntity</a> object addr param)</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>sceneID</code></th>
						<td><p>Scene <a href="#//api/name/name">name</a> (Max 16 length of utf8 formatted string), set nil to delete scene</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>hexTag</code></th>
						<td><p>Scene group unit tag if have (1Byte hexString to link preview scene address)</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>isEnable</code></th>
						<td><p>BoolValue for scene status active</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<ul>
<li>Create scene using @&ldquo;00&rdquo; address</li>
<li>Change scene enable/disable using target scene address</li>
<li>Re<a href="#//api/name/name">name</a> scene using target scene address</li>
<li>Set scene group unit tag (tag for link preview sceneEntity, default nil same as @&ldquo;00&rdquo;)</li>
<li>Delete scene by re<a href="#//api/name/name">name</a> nil ID</li>
</ul>

			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/actionSceneNow:" title="actionSceneNow:"></a>
	<h3 class="method-title"><code><a href="#//api/name/actionSceneNow:">&ndash;&nbsp;actionSceneNow:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Execute scene right now</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)actionSceneNow:(nonnull NSString *)<em>sceneAddr</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>sceneAddr</code></th>
						<td><p>Scene address (<a href="../Classes/SceneEntity.html">SceneEntity</a> object addr param)</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/setSceneCondition:withInfoArray:" title="setSceneCondition:withInfoArray:"></a>
	<h3 class="method-title"><code><a href="#//api/name/setSceneCondition:withInfoArray:">&ndash;&nbsp;setSceneCondition:withInfoArray:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Advanced: Modify scene conditions OVERRIDE!</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)setSceneCondition:(nonnull NSString *)<em>sceneAddr</em> withInfoArray:(nonnull NSArray *)<em>conditons</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>sceneAddr</code></th>
						<td><p>Scene address (<a href="../Classes/SceneEntity.html">SceneEntity</a> object addr param)</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>conditons</code></th>
						<td><p>Conditions array (child-array[@(type), device fulladdr(if have), cond-hexString]) MAX 3, nil to remove</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>Modify target scene conditions with max 3 condition info array:</p>

<ul>
<li>Using <code></code>SceneEntity<code> makeLocalConditionListWithDic:</code> or <code>sceneEntity localConditionsForIndexPath:</code> to get detail local condition info from sceneEntity object condition dic</li>
<li><p>Scene conditions:</p>

<ol>
<li> Every scene can contain max 3 parallel condition group.</li>
<li> Each parallel condition group can independently trigger the scene</li>
<li> Each condition group contain max 3 dependent condition.</li>
<li> condition info array contaion: @(type), dependent node full address, condtion detail string.</li>
</ol>
</li>
<li><p>Better using EntityControl block in OBUIExtension</p></li>
</ul>

			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/setSceneAction:forNodeAddr:ifGroup:withHexStatus:" title="setSceneAction:forNodeAddr:ifGroup:withHexStatus:"></a>
	<h3 class="method-title"><code><a href="#//api/name/setSceneAction:forNodeAddr:ifGroup:withHexStatus:">&ndash;&nbsp;setSceneAction:forNodeAddr:ifGroup:withHexStatus:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Insert, Modify or Delete scene actions for specific node/group</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)setSceneAction:(nonnull NSString *)<em>sceneAddr</em> forNodeAddr:(nonnull NSString *)<em>nodeAddr</em> ifGroup:(BOOL)<em>isGroup</em> withHexStatus:(nullable NSString *)<em>hexStatus</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>sceneAddr</code></th>
						<td><p>Scene address (<a href="../Classes/SceneEntity.html">SceneEntity</a> object addr param)</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>nodeAddr</code></th>
						<td><p>Node address in obox (<a href="../Classes/DeviceEntity.html">DeviceEntity</a> or <a href="../Classes/GroupEntity.html">GroupEntity</a> object addr param)</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>isGroup</code></th>
						<td><p>BoolValue flag of nodeAddr is group or device</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>hexStatus</code></th>
						<td><p>Scene action hesString state, set nil to remove action of node</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>Using <code></code>SceneEntity<code> makeLocalActionListWithDic:</code> or <code>sceneEntity localActionsForIndexSet:</code> to get detail local action info from sceneEntity object action dic
Better using EntityControl block in OBUIExtension</p>
			</div>
			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/setSceneAction:withInfoArray:" title="setSceneAction:withInfoArray:"></a>
	<h3 class="method-title"><code><a href="#//api/name/setSceneAction:withInfoArray:">&ndash;&nbsp;setSceneAction:withInfoArray:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Advanced: Modify scene actions OVERRIDE!</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (void)setSceneAction:(nonnull NSString *)<em>sceneAddr</em> withInfoArray:(nullable NSArray&lt;NSArray*&gt; *)<em>actions</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>sceneAddr</code></th>
						<td><p>Scene address (<a href="../Classes/SceneEntity.html">SceneEntity</a> object addr param)</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>actions</code></th>
						<td><p>Scene action array contains sub-array[addr, isGroup, (status)], nil or NULL for delete ALL!</p></td>
					</tr>
				
				</table>
			</div>
			

			

			

			
			<div class="method-subsection discussion-section">
				<h4 class="method-subtitle">Discussion</h4>
				<p>Using <code></code>SceneEntity<code> localActionsComparedWithNewLists:</code> to compare scene action change and transform to local action info from sceneEntity object action dic
Better using EntityControl block in OBUIExtension</p>
			</div>
			

			

			
			<div class="method-subsection see-also-section">
				<h4 class="method-subtitle">See Also</h4>
				<ul>
					
					<li><code><p><a href="#//api/name/setSceneAction:forNodeAddr:ifGroup:withHexStatus:">- setSceneAction:forNodeAddr:ifGroup:withHexStatus:</a></p></code></li>
					
				</ul>
			</div>
			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div>
						</div>
						

						<a title="Develop Functions" name="task_Develop Functions"></a>
						<h2 class="task-title">Develop Functions</h2>

						<div class="task-list">
							<div class="section-method">
	<a name="//api/name/dataFromHexString:" title="dataFromHexString:"></a>
	<h3 class="method-title"><code><a href="#//api/name/dataFromHexString:">+&nbsp;dataFromHexString:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Develop Helper: Get NSData object from Hex-string</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>+ (nullable NSData *)dataFromHexString:(nonnull NSString *)<em>hexString</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>hexString</code></th>
						<td><p>Original Hex string</p></td>
					</tr>
				
				</table>
			</div>
			

			
			<div class="method-subsection return">
				<h4 class="method-subtitle parameter-title">Return Value</h4>
				<p>NSData object transformed</p>
			</div>
			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/sendDataWithCmdHexString:andPlayloadHexString:withTimeout:" title="sendDataWithCmdHexString:andPlayloadHexString:withTimeout:"></a>
	<h3 class="method-title"><code><a href="#//api/name/sendDataWithCmdHexString:andPlayloadHexString:withTimeout:">&ndash;&nbsp;sendDataWithCmdHexString:andPlayloadHexString:withTimeout:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Send command and playload data to obox</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>- (BOOL)sendDataWithCmdHexString:(nonnull NSString *)<em>cmd</em> andPlayloadHexString:(nullable NSString *)<em>playload</em> withTimeout:(NSTimeInterval)<em>timeout</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>cmd</code></th>
						<td><p>OBox command hex-string (Must be 2 Byte)</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>playload</code></th>
						<td><p>Hex-string playload of this request (Max 54 Bytes)</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>timeout</code></th>
						<td><p>Timeout waiting response</p></td>
					</tr>
				
				</table>
			</div>
			

			
			<div class="method-subsection return">
				<h4 class="method-subtitle parameter-title">Return Value</h4>
				<p>Frame data is suitable to send or not</p>
			</div>
			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div><div class="section-method">
	<a name="//api/name/secureOBSForByte:andLength:withPw:" title="secureOBSForByte:andLength:withPw:"></a>
	<h3 class="method-title"><code><a href="#//api/name/secureOBSForByte:andLength:withPw:">+&nbsp;secureOBSForByte:andLength:withPw:</a></code>
</h3>

	<div class="method-info">
		<div class="pointy-thing"></div>

		<div class="method-info-container">
			
			
			<div class="method-subsection brief-description">
				<p>Develop Helper: Symmetric encryption and decryption data with OBSecure</p>
			</div>
			
		    

			<div class="method-subsection method-declaration"><code>+ (BOOL)secureOBSForByte:(nonnull Byte *)<em>buffer</em> andLength:(NSUInteger)<em>length</em> withPw:(nonnull NSString *)<em>pw</em></code></div>

		    
			
			<div class="method-subsection arguments-section parameters">
				<h4 class="method-subtitle parameter-title">Parameters</h4>
				<table class="argument-def parameter-def">
				
					<tr>
						<th scope="row" class="argument-name"><code>buffer</code></th>
						<td><p>Data buffer pointer</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>length</code></th>
						<td><p>Data length</p></td>
					</tr>
				
					<tr>
						<th scope="row" class="argument-name"><code>pw</code></th>
						<td><p>Encryption or Decryption password (Must be 8 length)</p></td>
					</tr>
				
				</table>
			</div>
			

			
			<div class="method-subsection return">
				<h4 class="method-subtitle parameter-title">Return Value</h4>
				<p>Encryption or Decryption success or not</p>
			</div>
			

			

			

			

			

			
			<div class="method-subsection declared-in-section">
				<h4 class="method-subtitle">Declared In</h4>
				<p><code class="declared-in-ref">OBBox.h</code></p>
			</div>
			
			
		</div>
	</div>
</div>
						</div>
						
					</div>
					
					

                    
                    
          
				</main>

				<footer>
					<div class="footer-copyright">
						
						<p class="copyright">Copyright &copy; 2017 On-Bright. All rights reserved. Updated: 2017-06-09</p>
						
						
						<p class="generator">Generated by <a href="http://appledoc.gentlebytes.com">appledoc 2.2.1 (build 1334)</a>.</p>
						
					</div>
				</footer>
			</div>
		</div>
	</article>

	<script src="../js/script.js"></script>
</body>
</html>